#include "imax6u.h"
#include "main.h"

// 使能外设时钟
void clk_enable()
{
    CCM->CCGR1 = 0xFFFFFFFF;
    CCM->CCGR2 = 0xFFFFFFFF;
    CCM->CCGR3 = 0xFFFFFFFF;
    CCM->CCGR4 = 0xFFFFFFFF;
    CCM->CCGR5 = 0xFFFFFFFF;
    CCM->CCGR6 = 0xFFFFFFFF;
}

void led_init()
{
    IOMUX_SW_MUX->GPIO1_IO03 = 0x5; // 设置 GPIO1_23
    IOMUX_SW_PAD->GPIO1_IO03 = 0x5; //

    // GPIO 初始化
    GPIO1->DIR = 0x8; // 设置 GPIO1_23 为输出
    GPIO1->DR = 0x0;  //
}

void led_on()
{

    GPIO1->DR &= ~(1 << 3); //
}

void led_off()
{
    GPIO1->DR |= (1 << 3); //
}

void delay(uint32_t count)
{
    for (int i = 0; i < count; ++i)
    {
        __asm("nop");
    }
}

int main()
{
    clk_enable();
    led_init();

    //
    while (1)
    {
        led_on();
        delay(0x3FFFF);
        led_off();
        delay(0x3FFFF);
    }

    return 0;
}
